I. Field of the Invention
The current invention relates to wireless communications. More particularly, the disclosed embodiments relate to an improved method and apparatus for reliably transmitting data through a wireless channel while minimizing the overhead inherent in the error control protocol.
II. Background
The use of code division multiple access (CDMA) modulation techniques is one of several techniques for facilitating communications in which a large number of system users are present. Other multiple access communication system techniques, such as time division multiple access (TDMA), frequency division multiple access (FDMA) and Amplitude Modulation (AM) schemes such as amplitude companded single sideband (ACSSB) are known in the art. These techniques have been standardized to facilitate interoperation between equipment manufactured by different companies. Code division multiple access communications systems have been standardized in the United States in Telecommunications Industry Association TIA/EIA/IS-95-B, entitled “MOBILE STATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREAD SPECTRUM CELLULAR SYSTEMS”, incorporated by reference herein, and hereinafter referred to as IS-95-B.
IS-95-B was originally optimized for transmission of variable-rate voice frames. In order to support two-way voice communications, as typified in wireless phone applications, it is desirable that a communication system provide fairly constant and minimal data delay. For this reason, IS-95-B systems are designed with powerful forward error correction (FEC) protocols and vocoders that are designed to respond gracefully to voice frame errors. Error control protocols that require frame retransmission procedures add unacceptable delays to voice transmission, so are not part of the IS-95-B specification.
The optimizations, which make the stand-alone IS-95-B specification ideal for voice applications, make it difficult to use for packet data applications. In many non-voice applications, such as the transmission of Internet protocol (IP) data, the delay requirements of the communication system are much less stringent than in voice applications. In the Transmission Control Protocol (TCP), probably the most prevalent of protocols used in an IP network, virtually infinite transmission delays are allowed in order to guarantee error-free transmission. TCP uses retransmissions of IP datagrams, as IP packets are commonly called, to provide this transport reliability.
IP datagrams are generally too large to fit into a single IS-95-B frame. Even after dividing an IP datagram into segments small enough to fit into a set of IS-95-B frames, the entire set of IS-95-B frames would have to be received without error for the single IP datagram to be useful to TCP. The targeted frame error rate typical of an IS-95-B system make the probability of error-free reception of all segments of a single datagram very low.
As described in IS-95-B, alternative service options enable the transmission of other types of data in lieu of voice frames. Telecommunications Industry Association Interim Standard TIA/EIA/IS-707-A, entitled “DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS”, hereinafter referred to as IS-707, describes a set of procedures used in the transmission of packet data in an IS-95-B system.
Radio Link Protocol (RLP) is described in TIA/EIA/IS-707-A.8, entitled “DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS: RADIO LINK PROTOCOL TYPE 2”, hereinafter referred to as RLP2, and incorporated herein by reference. RLP2 incorporates an error control protocol with frame retransmission procedures over the IS-95-B frame layer. RLP is of a class of error control protocols known as Negative Acknowledgement (NAK) based automatic request for retransmission (ARQ) protocols, which are well known in the art. The IS-707 RLP, facilitates the transmission of a byte-stream, rather than a series of voice frames, through an IS-95-B communication system.
Several protocol layers typically reside above the RLP layer. IP datagrams, for example, are typically converted into a Point-To-Point Protocol (PPP) byte stream before being presented as a byte stream to the RLP protocol layer. As the RLP layer ignores the protocol and framing of higher protocol layers, the stream of data transported by RLP is said to be a “featureless byte stream”.
RLP was originally designed to satisfy the requirements of sending large datagrams through an IS-95-B channel. For example, if an IP datagram of 500 bytes was to be simply sent in IS-95-B frames carrying 20 bytes each, the IP datagram would fill 25 consecutive IS-95-B frames. Without some kind of error control layer, all 25 of these RLP frames would have to be received without error in order for the IP datagram to be useful to higher protocol layers. On an IS-95-B channel having a 1% frame error rate, the effective error rate of the IP datagram delivery would be (1−(0.99)25), or 22%. This is a very high error rate compared to most networks used to carry Internet Protocol traffic. RLP was designed as a link layer protocol that would decrease the error rate of IP traffic to be comparable to the error rate typical of a 10Base2 Ethernet channel.
The International Telecommunications Union recently requested the submission of proposed methods for providing high rate data and high-quality speech services over wireless communication channels. A first of these proposals was issued by the Telecommunications Industry Association, entitled “The cdma2000 ITU-R RTT Candidate Submission. The Telecommunications Industry Association is currently developing the cdma2000 proposal as interim standard TIA/EIA/IS-2000, and hereinafter referred to as cdma2000. A second of these proposals was issued by the European Telecommunications Standards Institute (ETSI), entitled “The ETSI UMTS Terrestrial Radio Access (UTRA) ITU-R RTT Candidate Submission”, also known as “Wideband CDMA” and hereinafter referred to as W-CDMA. A third proposal was submitted by U.S. TG 8/1 entitled “The UWC-136 Candidate Submission”, hereinafter referred to as EDGE. The contents of these submissions is public record and is well known in the art.
RLP2 was designed for use with IS-95-B. A new RLP designed for use with cdma2000 is described in TIA/EIA/IS-707-A-1.10, entitled “DATA SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS: RADIO LINK PROTOCOL TYPE 3”, hereinafter referred to as RLP3, and incorporated herein by reference.
In reference to the description of the related art, two items commonly referred to as frames have the following distinction:                In IS-95-B and cdma2000, the basic timing interval is termed a frame. A frame of this variety is hereinafter referenced as a CDMA frame. A CDMA frame can contain signaling information, primary traffic, secondary traffic, or combinations thereof.        In RLP3, the basic unit of transmission is termed a frame. A frame of this variety is hereinafter referenced as an RLP frame. An RLP frame can contain payload data, a sequence number, RLP control information (e.g. SYNC, NAK, etc.), or combinations thereof. All references to sequence numbers hereinafter are references to RLP sequence numbers.        
In IS-95-B, the fundamental and supplemental channels have CDMA frames that are of a fixed 20 millisecond (20 ms) duration. CDMA frames transmitted on IS-95-B supplemental channels are transmitted at the same time that a CDMA frame is transmitted on the fundamental channel. As all IS-95-B supplemental CDMA frames are of a fixed 20 ms duration, all fundamental and supplemental CDMA frames that begin transmission at the same time will later be received by the receiver at the same time.
Cdma2000 has a supplemental channel structure that differs significantly from that of IS-95-B. Cdma2000 allows for 2 supplemental channels, hereinafter referred to as supplemental 1 and supplemental 2. During service negotiation the mobile station and the base station negotiate a configuration that includes the supplemental channel CDMA frame duration(s). The durations that can be negotiated for each supplemental channel are: 20 ms, 40 ms, and 80 ms.
As the amount of data that can be transmitted in a channel is related to the CDMA frame duration, hereinafter CDMA frame durations are referenced as CDMA frame lengths. Cdma2000 allows the negotiated configuration to be one in which the CDMA frame length for supplemental 2 is different than the CDMA frame length for supplemental 1. Any telecommunications system that supports the concurrent transmission of data packets on different code channels from one entity, such as a cdma2000 base station, capable of transmitting user data on a fundamental and supplemental channel(s) concurrently, to another entity, such as a cdma2000 mobile, is hereafter referenced as a cdma2000-like system.
In RLP2, RLP3, and all existing RLP implementations, three variables are maintained at either side of an RLP protocol link. These variables are V(R), V(N) and V(S). As discussed in the RLP standards, V(R) contains the expected value of the RLP frame sequence number field in the next new frame to be received. V(N) contains the sequence number of the next needed frame not received in sequence. The sequence number field ‘SEQ’ in each new RLP data frame sent, and in each RLP idle frame sent, is set to V(S). V(S) is a state variable that denotes the next sequence number to be sent. The sequence number field ‘SEQ’ in each new RLP data frame received contains the sequence number of the received frame, hereinafter referred to as “received SEQ number”. Each of the variables V(R), V(N), and V(S), are the shortened (8-bit), over-the-air versions of the full (12-bit) sequence numbers L_V(R), L_V(N) and L_V(S) also maintained at either side of an RLP protocol link.
RLP2 and all other RLPs are essentially designed as state machines called from the multiplex sublayer every 20 ms. At each 20 ms interval, the multiplex sublayer delivers to RLP a set of frames received from the physical layer. Each time the multiplex sublayer delivers a set of frames to the RLP state machine, also known as the RLP engine, the RLP state machine compares the sequence number(s) of the just received frames to L_V(R) and L_V(N). In the event that RLP finds a new ‘hole’ was created, a NAK is generated. The term ‘hole’ is commonly used by those skilled in the art to denote that a set of frames containing non-consecutive sequence numbers was received by the RLP3 engine. A ‘new hole’ is created whenever the updated L_V(R) is different from the previous L_V(R), and all frames received with sequence numbers greater than the previous L_V(R) do not have consecutive sequence numbers.
RLP3 is similar to RLP2 in many respects. The similarities facilitated many benefits that code reuse and backward compatibility can provide. RLP3 was designed, as was RLP2, to associate a frame sequence number with each RLP frame transmitted and received. Whenever an unexpected sequence number is received, a request for retransmission, referred to as a NAK, is sent to the peer RLP entity.
Delayed frame detection was not implemented in RLP2 because all IS-95-B CDMA frames transmitted at the same time are received by the receiver at the same time. If an RLP2 state machine finds that a hole has been created by the receipt of a 20 ms set of frames from the multiplex sublayer, due to the simultaneous transmission of all frames on the supplemental channels, it means that the frames in the hole have been lost or corrupted en route to the receiver. As such, a NAK generated for such a hole is necessary, as the retransmission of the frames in the hole are desirable. Utilizing the same methodology, however, causes RLP3 to generate unnecessary retransmissions because of the flexible nature of the cdma200 supplemental channels. As described earlier, it is possible in cdma2000 for supplemental channels to vary in CDMA frame length. Unnecessary retransmissions may also be generated due to timing offsets when supplemental frames are clocked on a different bus than fundamental frames during transmission. Such variations and timing issues can unintentionally cause RLP3 to detect holes and cause the generation of unnecessary NAKs.
For example, FIG. 1A shows a 160 ms time interval of generated RLP data frames for an RLP3 data call with a fundamental channel and two supplemental channels. As illustrated, supplemental 1 has a CDMA frame length of 80 ms, supplemental 2 has a CDMA frame length of 40 ms, and the RLP sequence number at the beginning of this time interval is 5. At time 0 the multiplex sublayer asks the RLP engine for three frames of lengths corresponding to the frame duration of the fundamental channel and each supplemental channel. In response, the RLP engine generates three RLP frames having sequence numbers 5, 6, and 7. At the 20 ms boundary the RLP frame having sequence number 8 is generated in response to the multiplex sublayer asking for a single frame of a length corresponding to the fundamental channel. At the 40 ms boundary an RLP frame containing sequence number 9 is generated. At the 40 ms boundary the multiplex sublayer asks for a frame of length corresponding to supplemental channel 2. In response, the RLP engine generates an RLP frame having sequence number 10. At the 60 ms boundary the multiplex sublayer asks for a frame corresponding to the fundamental channel. In response, the RLP engine generates an RLP frame having sequence number 11. Likewise, RLP frames with sequence numbers 12, 13 and 14 are generated at the 80 ms boundary for like reasons. Frames 15–17 are generated for like reasons at the times illustrated in FIG. 1A. The receipt of the aforementioned frames by the receiving RLP3 engine is illustrated in FIG. 1B. FIG. 1B does not show the length/duration of the received frames, as is done in FIG. 1A. Rather, FIG. 1B shows the time that the frame is given to the RLP3 receive engine from the receiving multiplex sublayer. FIG. 1B assumes there is zero delay from the time the frame transmission completed in FIG. 1A to the time that the RLP3 receive engine has the frame delivered to it by the multiplex sublayer. For example, because the transmission of frame 5 finishes at time 20 ms in FIG. 1A, it is received by the RLP3 receive engine at time 20 ms in FIG. 1B. Because the transmissions of frames 7 and 8 complete at 40 ms in FIG. 1A, they are received for processing by the RLP3 engine at 40 ms in FIG. 1B. Likewise, because the transmissions of frames 6 and 10 complete at time 80 ms in FIG. 1A, these frames are received for processing by the RLP3 receive engine at time 80 ms in FIG. 1B. The receipt of frame 9, and frames 11 through 18, are diagrammed in a similar manner.
As is evident by comparison of the figures, RLP frames transmitted with ordered incremental sequence numbers are not received in order by the receiving RLP engine. Although the frames began transmission in the same sequence that the RLP3 generated the sequence numbers, the frames were received in a different order. Namely, CDMA frames containing RLP sequence numbers 5 through 17 were transmitted in the following order 5,6,7,8,9,10,11,12,13,14,15,16,17,18 yet were received in the order of 5,8,7,9,11,6,10,12,15,14,16,18,13,17 owing to the differences in frame duration. As would be evident to one skilled in the art, NAKs would be generated for frames 6,7,10,13, 14, and 17 due to the timing and order that frames 8, 11, 15, and 18 were received.
As one skilled in the art is aware, the generation of NAKs should only be done when the receiver fails to receive a transmission of an RLP data frame that it should have already received. However, due to the varying CDMA frame lengths of cdma2000, or differences in transmission timing on fundamental and supplemental channels, unnecessary NAKs can be generated due to the timing that sequence numbers are received. This causes the undesirable effect of wasting valuable bandwidth both on the forward and reverse links. The bandwidth is wasted by each NAK transmitted on one link and by the unnecessary retransmitted data frame on the opposite link (an unnecessary retransmitted data frame is generated for each received unnecessary NAK).
Because over-the-air bandwidth is a valuable resource, an improved method of delivering data over cdma2000 is desirable. In particular, a method for delivering data over cdma2000 that doesn't generate unnecessary NAKs and retransmissions is highly desirable. It is desirable that such a method neither increases the latency of the delivery of data frames to the protocol layer above RLP nor increases the latency of the delivery of valid NAK frames to the multiplex sublayer. It is particularly desirable that such a method require few, if any, changes to existing implementations of RLP3, and no changes to the RLP3 standard.